//package study.kit.el.zh.table;
//
//import cn.hutool.core.collection.CollectionUtil;
//import cn.hutool.core.collection.ListUtil;
//import cn.hutool.core.convert.Convert;
//import cn.hutool.core.util.ReflectUtil;
//import lombok.extern.slf4j.Slf4j;
//import study.kit.el.zh.parse.CellVO;
//import study.kit.el.zh.parse.RowVO;
//
//import java.util.List;
//import java.util.Map;
//
//@Slf4j
//public class TableReader {
//
//    /**
//     * 解析数据
//     *
//     * @param ctx
//     * @return List<TableRec>
//     */
//    public static List<TableRow> readTable(TableCtx ctx) {
//        // 标题
//        RowVO header = ctx.getHeader();
//        Map<Integer, String> colNum2NameMap = CollectionUtil.toMap(header.getCellVOLt(), _null,
//                CellVO::getColNum,
//                e -> Convert.toStr(e.getValue()));
//
//        // 数据行
//        List<TableRow> tableRowLt = ListUtil.toList();
//        List<RowVO> dataLt = ctx.getDataLt();
//        for (RowVO row : dataLt) {
//            TableRow tableRow = new TableRow();
//            tableRow.setRowNum(row.getRowNum());
//
//            // 数据列
//            List<CellVO> colVOLt = row.getCellVOLt();
//            for (CellVO cell : colVOLt) {
//                // 列号和值
//                Integer colNum = cell.getColNum();
//                Object value = cell.getValue();
//
//                // 设置值
//                String fieldName = HeaderUtil.getFieldName(colNum, colNum2NameMap);
//                ReflectUtil.setFieldValue(tableRow, fieldName, value);
//            }
//            tableRowLt.add(tableRow);
//        }
//
//        // 填充合并
//        TableUtil.fillBean(tableRowLt);
//        tableRowLt.forEach(e -> {
//            log.info("{}, {}, {}, {}, {}", e.getRowNum(), e.getQuarter(), e.getLessonNo(), e.getLessonName(), e.getKnoPoint());
//        });
//
//        return tableRowLt;
//    }
//}
